<!DOCTYPE html>
<html>

<head>
  <title></title>
</head>

<body>
  <!-- <div id="canvas"></div> -->
  <!-- <script src="./jtopo-0.4.4-min.js"></script>
	<script src="http://www.jtopo.com/demo/js/toolbar.js"></script> -->
  <script type="text/javascript">
    // var canvas = document.getElementById('canvas'); 
    // var stage = new JTopo.Stage(canvas); // 创建一个舞台对象
    // var scene = new JTopo.Scene(stage); // 创建一个场景对象

    // var node = new JTopo.Node("Hello");    // 创建一个节点
    // node.setLocation(300,200);    // 设置节点坐标                    
    // scene.add(node); // 放入到场景中

    //  var node = new JTopo.Node("Hello");    // 创建一个节点
    // node.setLocation(300,200);    // 设置节点坐标                    
    // node.rotate = Math.random(); // 旋转角度
    // node.scaleX = Math.random(); // 水平方向的缩放
    // node.scaleY = Math.random(); // 垂直方向的缩放
    // node.alpha = Math.random();  // 透明度
    // node.setImage('host.png');\ // 设置图片

    //  var stage = new JTopo.Stage(canvas);
    // var scene = new JTopo.Scene(stage);

    // var nodeFrom = new JTopo.Node("from");
    // nodeFrom.setLocation(200,200);
    // scene.add(nodeFrom);

    // var nodeTo = new JTopo.Node("To");
    // nodeTo.setLocation(300,200);
    // scene.add(nodeTo);

    // var link = new JTopo.Link(nodeFrom, nodeTo); // 增加连线
    // scene.add(link);
    let data = [{
      qstNo: 1,
      qstId:'x',
      optionList: [{ optionId: 0, target: 0 }, { optionId: 1, target: 2 }],
      target: 2
    }, {
      qstNo: 0,
      qstId:'y',
      optionList: [{ optionId: 0, target: 1 }, { optionId: 1, target: 2 }],
      target: 1
    }, {
      qstNo: 2,
      qstId:'z',
      optionList: [{ optionId: 0, target: '' }, { optionId: 1, target: '' }],
      target: 'isEnd'
    }]
    fn=function(data) {
      let changeMap = new Map()
      data.forEach((el, i) => {
        
        changeMap.set(el.qstNo, i)
        
      })
      let result = JSON.parse(JSON.stringify(data))
      result.forEach((el,i)=>{
        changeMap.has(el.target) && (el.target = changeMap.get(el.target))
        el.optionList.forEach(item=>{
          changeMap.has(item.target) && (item.target = changeMap.get(item.target))
        })
        el.qstNo = i
      })
      return result
    }
    
    console.log(fn(data))
  </script>
</body>

</html>